iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 21
0
自我挑戰組

Hello Swift系列 第 21

21/30 OOPS!物件導向程式設計-2

  • 分享至 

  • xImage
  •  

(承21/30 OOPS!物件導向程式設計-1)

類別就像製作物件的藍圖,並且整合管理相關的資料,也可自定義型別。
試著替類別加入「屬性」與「方法」來描述產生的物件有什麼特色吧!

//定義類別,第一個字母大寫
class Lego{
    //屬性(Property):在類別裡宣告的變數,用來描述物件
    var color:String = "blue"
    var size:Int = 8
    //方法(method):描述類別所產生的物件的功能
    func connect(){
        print("connect with another block")
    }
    func remove(){
        print("disconnect with another block")
    }
}

記得,使用屬性或方法前,一定要先產生物件實體

//生成物件(object)=實體(instance)
let oneBlock:Lego = Lego()

以屬性描述產生的實體,亦可修改屬性

oneBlock.color = "red"
oneBlock.size = 4

呼叫類別的方法執行功能

oneBlock.connect()
oneBlock.remove()

同一個類別所產生的物件皆為獨立個體,不會互相影響

class Baby{
    //所有屬性都要有初始值,於宣告時設置
    var name:String = "Tom"
    var age:Int = 1
    func sleep(){
        print("sleep")
    }
    func introduceSelf(){
        print("My name is \(name)")
    }
}
let babyNumberOne:Baby = Baby()
babyNumberOne.name //Tom
babyNumberOne.age //1
babyNumberOne.sleep() //sleep

let babyNumberTwo:Baby = Baby()
babyNumberTwo.name = "Nancy" 
babyNumberOne.age = 10 //改變babyNumberOne的年齡

babyNumberOne.introduceSelf() //My name is Tom


上一篇
20/30 OOPS!物件導向程式設計-1
下一篇
22/30 OOP之Initialization
系列文
Hello Swift30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言